home *** CD-ROM | disk | FTP | other *** search
/ MacFormat 1994 November / macformat-018.iso / Comms Spectacular / finger_server_0.6 / MacTCP_includes / UDPPB.h < prev   
Encoding:
C/C++ Source or Header  |  1991-08-29  |  2.0 KB  |  93 lines  |  [TEXT/MPS ]

  1. /* 
  2.     UDPPB.h    
  3.     C definitions of parameter block entries needed for UDP calls
  4.  
  5.     Copyright Apple Computer, Inc. 1988-91 
  6.     All rights reserved
  7.         
  8. */
  9.  
  10. #define UDPCreate        20
  11. #define UDPRead            21
  12. #define UDPBfrReturn    22
  13. #define UDPWrite        23
  14. #define UDPRelease        24
  15. #define UDPMaxMTUSize    25
  16. #define UDPStatus        26
  17. #define UDPMultiCreate    27
  18. #define UDPMultiSend    28
  19. #define UDPMultiRead    29
  20. #define UDPCtlMax        29
  21.  
  22. typedef enum UDPEventCode {
  23.     UDPDataArrival = 1,
  24.     UDPICMPReceived,
  25.     lastUDPEvent = 32767
  26.     } UDPEventCode;
  27.  
  28. typedef pascal void (*UDPNotifyProc) (
  29.         StreamPtr udpStream, 
  30.         unsigned short eventCode, 
  31.         Ptr userDataPtr,
  32.         struct ICMPReport *icmpMsg);
  33.  
  34. typedef void (*UDPIOCompletionProc) (struct UDPiopb *iopb);
  35.  
  36. typedef    unsigned short    udp_port;
  37.  
  38. typedef struct UDPCreatePB {            /* for create and release calls */
  39.     Ptr             rcvBuff;
  40.     unsigned long    rcvBuffLen;
  41.     UDPNotifyProc    notifyProc;
  42.     unsigned short    localPort;
  43.     Ptr                userDataPtr;
  44.     udp_port        endingPort;
  45. } UDPCreatePB;
  46.     
  47. typedef struct UDPSendPB {
  48.     unsigned short    reserved;
  49.     ip_addr            remoteHost;
  50.     udp_port        remotePort;
  51.     Ptr                wdsPtr;
  52.     Boolean            checkSum;    
  53.     unsigned short    sendLength;
  54.     Ptr                userDataPtr;
  55.     udp_port        localPort;
  56. } UDPSendPB;
  57.     
  58. typedef struct UDPReceivePB {        /* for receive and buffer return calls */
  59.     unsigned short    timeOut;
  60.     ip_addr            remoteHost;
  61.     udp_port        remotePort;
  62.     Ptr             rcvBuff;
  63.     unsigned short    rcvBuffLen;
  64.     unsigned short    secondTimeStamp;
  65.     Ptr                 userDataPtr;
  66.     ip_addr            destHost;        /* only for use with multi rcv */
  67.     udp_port        destPort;        /* only for use with multi rcv */
  68. } UDPReceivePB;
  69.  
  70. typedef struct UDPMTUPB {
  71.     unsigned short     mtuSize;
  72.     ip_addr            remoteHost;
  73.     Ptr                userDataPtr;
  74. } UDPMTUPB;
  75.  
  76. typedef struct UDPiopb {
  77.     char                 fill12[12];
  78.     UDPIOCompletionProc    ioCompletion;
  79.     short                 ioResult;
  80.     char                 *ioNamePtr;        
  81.     short                 ioVRefNum;        
  82.     short                ioCRefNum;            
  83.     short                 csCode;
  84.     StreamPtr             udpStream;                
  85.     union {
  86.         struct UDPCreatePB    create;
  87.         struct UDPSendPB    send;
  88.         struct UDPReceivePB    receive;
  89.         struct UDPMTUPB        mtu;
  90.     } csParam;
  91. } UDPiopb;
  92.     
  93.